// ignore_for_file: prefer_interpolation_to_compose_strings

void main(List<String> arguments) {
  test1();
}

void test1(){
  //unicode 编码方案，  字符通用集
  Runes runes = new Runes('\u{1f605} \u6211');
  var str1 = String.fromCharCodes(runes);
  print(str1); // 😅 我
}

//int / double
void test2(){
  int i = 10;
  // i = 10.1;     // 这个地方会报错，因为将 int 型的数据改为 double 型 向下转型
  // i = int.parse('10.1'); // 字符串转换为int类型
  i = 10.1.round();// 通过round()方法将double转换为int
  print(i); // 10

  double d = 20.1;
  d = 20; // 这个地方不会报错，因为将 double 型的数据改为 int 型，向上转型
  print(d); // 20.0
}

//int / string
void test3(){
  int j = 10;
  String jstr = j.toString();
  int z = int.parse('66');
  // int z = int.parse('66.66'); // 报错，类型不匹配
  print(jstr); // 10
  print(z); // 66
}

//double / string
void test4(){
  double f = double.parse('9.9');
  double ff = double.parse('9');
  String fstr = 3.1415926.toStringAsFixed(6); // 保留6位小数
  String ffstr = 3.1415926.toString();
  print(f); // 9.9
  print(ff); // 9.0
  print(fstr); //3.141593
  print(ffstr); // 3.1415926
}

void test5(){
  // 检查是否为空
  var fullName = '';
  assert(fullName.isEmpty);

// 为0检查
  var hitPoints = 0;
  assert(hitPoints <= 0);

// 检查是否为 null.
  var unicorn;
  assert(unicorn == null);

// 检查是否为 NaN.
  var iMeantToDoThis = 0 / 0;
  assert(iMeantToDoThis.isNaN);
}